<?php
namespace Common\Model;

class UserDetailModel extends \Think\Model
{
	//自动验证
	protected $_validate = array(
			//新增
			array('user_id', '/^\d+$/', '用户id错误', self::MUST_VALIDATE, 'regex', self::MODEL_INSERT),
			
			//13更新实名信息
			array('realname', '/^[\w\x{4e00}-\x{9fa5}]{2,}$/u', '真实姓名错误', 1, 'regex', 13),
			array('social_no', '/^\d{15,17}[\w]$/', '身份证号格式错误', 1, 'regex', 13),
	);
	
	//自动完成
	protected $_auto = array(
		array('create_time', NOW_TIME, 1, 'string'),
		array('update_time', NOW_TIME, 3, 'string'),
		array('status', 1, 1, 'string')
	);
	
	/**
	 * 添加用户详情信息
	 * @param array $data
	 */
	public function addDetail(array $data)
	{
		//创建数据对象并判断
		if(!$this->create($data)) return array('error' => 1, 'info' => $this->getError());
		$id = $this->add();
		if($id) return array('error' => 0, 'info' => '添加成功');
		return array('error' => 1, 'info' => '添加失败');
	}
	
	/**
	 * 更新用户实名认证信息
	 * @param array $data
	 */
	public function updateRealname(array $data, $userId)
	{
		//查询用户详细信息是否存在
		if(!$userId) return array('error' => 1, 'info' => '参数错误');
		
		//查询用户详情信息是否存在
		$detail = $this->where(array('user_id' => $userId))->field('id,realname,social_no')->find();
		$exist = true;		
		if(!$detail) {
			$res = $this->addDetail(array('user_id' => $userId));
			if($res['error'] === 1) $exist = false;
		}
		
		if($exist) {
			//创建数据对象并判断
			if(!$this->create($data, 13)) return array('error' => 1, 'info' => $this->getError());
			if($detail['realname'] === $this->realname && $detail['social_no'] === $this->social_no) return array('error' => 1, 'info' => '无需更新');
			
			//保存
			$res = $this->where(array('user_id' => $userId))->save();
			if($res) return array('error' => 0, 'info' => '更新成功');
			return array('error' => 1, 'info' => '更新失败');
		}
		
		return array('error' => 1, 'info' => '详情添加失败');
	}
}